package br.com.edumobi.activities;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

import br.com.edumobi.R;
import br.com.edumobi.dados.modelos.Aluno;
import br.com.edumobi.excecoes.ExcecaoAtualizacaoDadosAlunoMalsucedida;
import br.com.edumobi.fragments.DadosAlunoFragment;

public class DadosAlunoActivity extends GenericaActivity implements DadosAlunoFragment.AcoesDadosAlunoFragment {

    public static final String EXTRA_ALUNO = "EXTRA_ALUNO";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dados_aluno);
        getActionBar().setTitle(R.string.meus_dados);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_dados_aluno, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Intent intent;

        switch (item.getItemId()) {
            case R.id.itemContatosMenuDadosAluno:
                intent = new Intent(this, ContatoAlunoActivity.class);
                intent.putExtra(ContatoAlunoActivity.EXTRA_ALUNO, obterAluno());
                startActivity(intent);
                return true;
            case R.id.itemEnderecoMenuDadosAluno:
                intent = new Intent(this, EnderecoAlunoActivity.class);
                intent.putExtra(EnderecoAlunoActivity.EXTRA_ALUNO, obterAluno());
                startActivity(intent);
                return true;
            case R.id.itemSenhaMenuDadosAluno:
                intent = new Intent(this, SenhaAlunoActivity.class);
                intent.putExtra(SenhaAlunoActivity.EXTRA_ALUNO, obterAluno());
                startActivity(intent);
                return true;
            default:
                return true;
        }
    }

    @Override
    public Aluno obterAluno() {
        return (Aluno) getIntent().getSerializableExtra(EXTRA_ALUNO);
    }

    @Override
    public Boolean salvarDadosAluno(Aluno aluno) {
        try {
            nuvem.salvarDadosAluno(aluno);
            return true;
        } catch (ExcecaoAtualizacaoDadosAlunoMalsucedida excecao) {
            return false;
        }
    }
}